EloSnack
EloSnack is a program that lets you cheat by editing files in the game save folders. Relevant links/downloads: * The official forum thread. * Download the latest version of the program. * Spreadsheet of various values used * Download Java, which is required to run the program. Basics of using EloSnack # First, run/launch the file elosnack.cmd and wait for a window titled "EloSnack" to come up (this might take a little while). # Click the "Open Configuration..." button (or choose "Open Configuration File" from the File menu), navigate to the EloSnack folder, and choose the elosnack-config.snack file. # Click the "Open Target..." button (or choose "Open Target Directory" from the File menu), navigate to your Elona's save folder, choose the folder for your save game, and press "Open". Now you'll have a bunch of sub-windows open inside the EloSnack window, though initially they'll all be on top of each other. If you expand the main window you'll have room to move them around. Alternatively, you can minimize some of them, though the minimized sub-windows won't show up if the main window is too small. In each sub-window there'll be a table. The first column is the name of the thing you can edit, the second column in the offset or line-number within the file of the thing that can be edited, the third column is the value of the thing that can be edited, and the fourth is a comment you can make about the thing to be edited. Columns can be rearranged by dragging the headers. To edit the value/comment for a thing, you have to double-click on the exact cell you wish to edit. For some files there'll be multiple objects of the same kind stored in a single file. In that case above the table there'll be a line saying "Index". An index of 0 is for the first object, an index of 1 is for the second object, and so on. You can edit the number and press to change the index, or use the up and down arrows to change it. After finishing your edits you can press the "Save" button or choose "Save modifications" from the "File" menu. Every time you save from EloSnack, a zip file of the pre-modification save folder will be generated as a backup file. Editable files A brief summary of the editable files. * cdata.s1: Data about the player and NPCs. * cdatan.s1: Names/aliases, races, and jobs of the player, pets, and NPCs; can be edited with Notepad. Note that the names of races and jobs has no effect on game play, and is purely cosmetic. * gdata.s1: Global data. * inv.s1: Inventory items. * kitem.s1: Information about various god gifts. * mat.s1: Amounts of materials the player has. List hasn't been updated for Elona+. * qdata.s1: Data about quests. * sdata.s1: More data about the player and NPCs. * spact.s1: The list of special actions the player has. Values are 0 for doesn't have and 1 for has. List hasn't been updated for Elona+. * spells.s1: The Spell Stock the player has in various spells. List hasn't been updated for Elona+. * trait.s1: The feats, mutations and Ether diseases the player has. List hasn't been updated for Elona+. cdata.s1 Data about the player and NPCs, with the player being at index 0. More research needed on how the other indexes associate with NPCs. Data includes: * Current X/Y position. * Gender. * Attraction level to the player (friend/soulmate/etc) * Height, weight, and age. * Fullness counter. * Amount of gold and platinum coins held. * Character experience and level. * Bonus points which can be spent on skills. * Karma. * Current and maximum HP, MP, stamina and inventory weight. * Which god you worship and your level of favor with that god. * Information about various body parts. 0 denotes the body part is currently not spawned on the player. ** 10000 = head ** 20000 = neck ** 30000 = back ** 40000 = body ** 50000 = hand ** 60000 = ring ** 70000 = arm ** 80000 = waist ** 90000 = leg ** 100000 = either ammo or shoot ** 110000 = either ammo or shoot ** Seemingly adding body parts this way might not incur a speed penalty. ** I didn't test 100000, or 110000 due to whether or not having extra shoot/ammo would corrupt the save game. ** Tested with all empty equipment slots. The last remaining numbers in the value (10067, etc) seem to denote equipment (67, etc), so adding just whole values (eg. Only 10000) would safely add just the body part. ** According to EloSnack it is possible to have at least 30 body parts total. ** Note these are only tested for player values, not pet values. * Various information for shopkeepers. * Various AI information for NPCs, including ** Main actions ** Sub-actions and chance of use ** Low-health action ** bit flags ** Neutral behavior type ** Attack range ** Move frequency * "Corrections" for various attributes (more research needed). * Counters for various status effects. * Information about buffs, which comes in triplets. Each triplet is in the form "Buff Type #X", "Buff Magnitude #X", and "Buff Duration #X". The values for the buff types can be found in columns "A" and "B" of the spreadsheet. Unlabeled offsets: * 636: the total AP the char has gained * 640: the part of INI which is determined by life and mana, plus possibly the AP you've gained. This is what to change if you want to fix the AP bug from version 1.38R. * 692: current AP * 792: the part of INI which is determined by all attributes save for life and mana. * 796: the part of INI which is determined by speed. * 920: the "element" a chars unarmed attack is with a mutiplier? gdata.s1 Global data. This data seems to correspond to the "core game data" which you get by entering "5" in the game console. * Deepest floor visited. Dungeons with a higher danger level count as deeper. This stat seems to influence the danger levels of random dungeons. * Number of player kills and game-days played. * Current game year, month and day. * Current map and floor depth player is on. * Cargo weight, in thousandths of a stone. "Effective Cargo Weight" is the cargo weight limit. * Counter for how far along you are to your next ether disease. * Counter for having gotten wishes from fountains. * Number of charges the the holly well has. * God gifts you've gotten. * Wizard mode flag. Unlabeled offsets: * 0: the number of times the player has been killed. * 68: current weather: ** 0: clear weather. ** 1: Etherwind. ** 2: snow. ** 3: rain ** 4: hard rain * 252: return countdown. * 256: return location. * 716: how many bills you have * 1068: kill left for a fighter quest * 1092: current game mode: ** 0: normal ** 2: overdose * 2048: the number of chestnuts thrown (100 spawns him, where it resets back to 50 after) * 3240: the number of Little sisters saved. * 3244: the number of little sisters killed. * 3248: the number of rewards you've already taken from the Strange scientist. inv.s1 Data about the items in your (and your pets') inventory. There are two ways to determine the index of an item: # Open up the console by pressing , enter "3", then press . This will show you a list of inventory items, with the number at the start of each line being the item's index. # Drop all of your items until you only have one item and save the game. That item will have index 0. Some notes about the various data types: * "Quality" controls both the quality given by Sense Quality, and controls if it's an artifact, and if so what kind (miracle, godly or special). Changing a special artifact to godly will allow its material type be changed by a material kit, while changing godly to miracle will allow its material type to be changed by scrolls. The types: ** 2: Good ** 3: Great ** 4: Miracle ** 5: Godly ** 6: Special * "Identification Level" is how thoroughly identified the item is: ** 0 or 1: only bare type is know (e.g., "a pair of composite boots") ** 2: material, quality level are known (e.g., "a pair of composite boots (Great) scale)" ** 3: fully identified * "Usage modifier" determines the effect of any item which can be used ( ). A few notable values: **33: Monster ball **58: Heart (used for evolution in Elona+) * Values for the equipment materials can be found in columns "G" and "H" of the spreadsheet. * The number for an artifact's name must be at least 40,000. This number seems to choose from an existing list of names, so there's no way to make your own, custom name. * "Weapon Level OR deed house type" does a few other things: ** Determines the "quality" level for cooking tools and beds. ** Determines the god for an altar. ** Determines ancient book type. ** Determines heart type (Elona+ only): ***11: King heart ***12: Machine heart ***13: God heart ***14: Another heart ***15: Magic heart ***16: Evolution heart * "Flag" packs many item attributes into a single number by adding together different numbers, each of which represents a single attribute. For instance, an item which was only acid proof would have a Flag of 2, an item which was only fire proof would have a Flag of 4, while an item which was acid proof and fireproof (but nothing else) would be 6 (2 + 4). The numbers and their associated attributes: ** 2: Acid proof ** 4: Fireproof ** 16: Has charges. Note that removing this from an item which has charges will just result in charges not being displayed, and the item not being elligable for being recharged, but otherwise changes nothing. ** 32: Precious ** 64: Aphrodisiac (food which has been dipped in a love potion) ** 256: Blessed by Ehekatl. ** 512: Stolen ** 1024: Living weapon. (NOTE: If you make an item living but don't give it a level of at least 1, attempting to examine the item will crash the game) ** 16384: Poisoned (food). ** 32768: Makes it an "eternal force" equipment, with the "The enemy dies" attribute, meaning it invokes the Word of Death on the enemy. ** 65536: Can only be used in a show room. ** 131072: It is a hand-made item. ** 262144: Has the "Herb" attribute (Elona+ only). ** 524288: Has the "Antiseptic" attribute (Elona+ only). * At the bottom of the table are variables to give the item up to fifteen equipment attributes (which doesn't cover the attributes granted by the "Flag" variable). The attributes come in pairs, with "Attribute #X" determining type type of attribute and "Magnitude of attribute #X" determining the attribute's magnitude (it is unknown if magnitude has any effect for attributes which are solely on/off). The game stops checking for attributes at the first "Attribute #X" which has a value of 0, so any further attributes will be cut off. An exact list of attributes can be found in columns "C" and "D" of the spreadsheet. The attribute numbers fall into various ranges: ** Attribute numbers less than 100 cover "It negates the effects of whatever" and miscellaneous attributes like "It lets you see invisible beings", "It occasionally stops time", and so on. ** Attributes in range of 10,000 affect the character attributes. ** Attributes in the range of 20,000 affect resistance. ** Attributes in the range of 30,000 affect skills. (It isn't yet known how "grants" differs from "enhances") ** Attributes in the range of 60,000 maintain character attributes. ** Attributes in the range of 70,000 deal extra damage. ** Attributes in the range of 80,000 invokes various things. ** Attributes in the range of 90,000 grants special ammo. sdata.s1 Data about the player and NPCs, with the player being at index 0. More research needed on how the other indexes associate with NPCs. Data includes: * Attributes, skill, resistances and spell levels. Two notes on these: *# These things come in "base" and "effective". "Base" is what they are before adding bonuses from equipment, feats, buffs and status effects, while "effective" is what you have after all of those are applied. *# The bases version have values which are in the millions. The three lowest/right-most digits (ones, tens and hundreds) represent the potential, the next three higher digits (thousands, ten thousands and hundred thousands) represent the the actual vale that goes to the right of the decimal place, and all the higher digits (millions, ten millions, etc) represent the actual value that goes to the left of the decimal place. For instance, if you have a base Strength number of 12,345,678, that would represent a base strength of 12.345 with a potential of 678%. trait.s1 The feats, mutations and Ether diseases the player has. Note that for feats/mutations/diseases that have multiple levels, the value is how many levels the player has. So, for instance, for the Luck feat, "1" means +5 luck, "2" means +10 luck and "3" means +15 luck. Category:Content